An asynchronous replication system may replicate, to one or more files, data written to an active file. For example, an asynchronous replication system may replicate, to one or more passive copies of a database, transactional information committed to be written to an active database. However, some latency may be experienced before the transactional information is replicated to the one or more passive copies of the database. Thus, during a latency period, the transactional information may be written to the active database, but not yet written to the one or more passive copies of the database. If the active database fails during the latency period, the one or more passive copies of the database may not have recent updates.
To avoid a possible loss of data, which may occur during a latency period, many turned to fully synchronous replication systems. In a fully synchronous replication system, a write to an active database may not be completed until the write to the active database and replication to one or more copies of the database are completed. However, fully asynchronous replication systems introduce latency based on an amount of time to send data to a remote processing device, including a copy of the database, and an amount of time to receive data, such as, for example, an acknowledgment, from the remote processing device. A problem writing to the one or more copies of the database may propagate back to the active database because the processing device writing to the active database waits for the writing to the one or more copies of the database to complete before attempting another write to the active database. Similarly, a problem writing to the active database may affect writing to the one or more copies of the database because the writing to the one or more copies of the database is not attempted until the writing to the active database is completed.
In addition to the problems mentioned above, a cost of a fully synchronous replication system is higher than a cost of an asynchronous replication system due to a more expensive, higher-quality connection between an active database and one or more copies of the database in a synchronous replication system.